package com.insurance.service;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.IService;
import com.insurance.common.utils.PageUtils;
import com.insurance.entity.PartnerInfoEntity;

import java.util.List;
import java.util.Map;

/**
 * 合作方信息
 *
 * @date 2021-02-26 17:32:47
 */
public interface PartnerInfoService extends IService<PartnerInfoEntity> {

    /**
     * 分页查询
     *
     * @param params 分页条件
     * @param queryWrapper 查询条件
     * @return
     */
    PageUtils queryPage(Map<String, Object> params, QueryWrapper<PartnerInfoEntity> queryWrapper);

    /**
     * 查询列表
     *
     * @param partnerInfoEntity 查询条件
     * @return
     */
    List<PartnerInfoEntity> queryList(PartnerInfoEntity partnerInfoEntity);

    /**
     * 获取查询条件
     * @return
     */
    QueryWrapper<PartnerInfoEntity> getQueryWrapper();

    /**
     * 获取查询条件
     *
     * @param partnerInfoEntity 查询条件
     * @return
     */
    QueryWrapper<PartnerInfoEntity> getQueryWrapper(PartnerInfoEntity partnerInfoEntity);

    /**
     * 通过appId查询合作对象
     *
     * @param appId 账号
     * @return
     */
    PartnerInfoEntity getByAppId(String appId);

    /**
     * 校验账号密钥
     *
     * @param appId 账号
     * @param appSecret 密钥
     * @return
     */
    boolean isValidate(String appId, String appSecret);

    /**
     * 通过appId查询并更新登录时间
     *
     * @param appId 账号
     * @return
     */
    PartnerInfoEntity loginByAppId(String appId);

    /**
     * 通过主键批量删除
     *
     * @param partnerIdList 主键集合
     * @param partnerInfoEntity 更新的值
     * @return
     */
    boolean removeBatch(List<String> partnerIdList, PartnerInfoEntity partnerInfoEntity);

    /**
     * 校验合作方编码
     *
     * @param partnerCode 合作方编码
     * @return 没有重复的返回true, 有返回false
     */
    boolean checkPartnerCode(String partnerCode);

    /**
     * 校验合作方appId
     *
     * @param appId 合作方appId
     * @return
     */
    boolean checkPartnerAppId(String appId);

}

